<?php

/**
 * Controlador de grafico de seguimiento
 * 
 * @category   Controller
 * @package    modules__models
 * @author     Jose Miguel De Jesus <josejm07@hotmail.com>
 * @copyright  Todos los derechos reservados. Company24h. 2013.
 * 
 * @see        Administrador
 * @since      Version 1.0, revision 1.
 */
class seguimientoGraficoControler extends Controller{
  
    public function __construct()
	{
		parent::Controller();
		
               $this->load->model(array('tiposeguimientomodel','usuarios','mservicios','metapas','mmodeloetapas','CompaniaHistorico','mcompania','mprocesos',"mmodeloetapas"));
               $this->load->library(array('chcalendario'));
	}
	
          /**
	 * 
	 * Esta funcion index es la que me va a cargar la vista.
	 */
	public function index()
	{
              
              $this->graficoIndex();
             
              
          }
    
          
          public function graficoIndex()
          {
           
              $this->reguladorDeEtapas();
              
              $semafaroFirma =array(
                  "verde" => 0,
                  "amarrillo" => 0,
                  "rojo" => 0
              );
              
               $semafaroDatos =array(
                  "verde" => 0,
                  "amarrillo" => 0,
                  "rojo" => 0
              );
              
              $fDesde = $this->input->post('fdesde')? $this->input->post('fdesde'): date('Y-m-d', strtotime('-1 week')); // resta 1 semana
              $fHasta = $this->input->post('fhasta')? $this->input->post('fhasta'): date('Y-m-d');//fecha actual
              $select = $this->input->post('select')? $this->input->post('select'): NULL;
              
               $fDesde = date("Y-m-d", strtotime("$fDesde -1 day"));
               $fHasta = date("Y-m-d", strtotime("$fHasta +1 day"));
              
              $SC_COMPANIA_firma = $this->mcompania->LoadCompaniasEtapas(10  , $select ); 
              $SC_COMPANIA_datos = $this->mcompania->LoadCompaniasEtapas(11  , $select );  
              
               $SC_COMPANIA_firma_todas = $this->mcompania->LoadCompaniasEtapas(10  , $select); 
               $SC_COMPANIA_datos_todas = $this->mcompania->LoadCompaniasEtapas(11  , $select);  
              
              if($SC_COMPANIA_firma_todas){
              
               foreach ($SC_COMPANIA_firma_todas as $key)
                {
             
                 $proceso = $this->mprocesos->LoadProcesosConteoCambioDeEtapasFirmaDatos($key->getIdCompania(),$key->getIdUltimaEtapa());
                 
                 $FechaprimerProceso = $this->chcalendario->calcularDias($proceso[0]->fecha);
                 
                 $proceso_neto = ($FechaprimerProceso/11)*100;
                 
                 if($proceso_neto >= 0 and $proceso_neto < 70 or $proceso_neto == 0 or $proceso_neto < 0)
                     {
                     
                     $semafaroFirma["verde"]++;
                     
                     }elseif ($proceso_neto >= 70 and $proceso_neto <85) {
                
                          $semafaroFirma["amarrillo"]++;
            }else{
                
                 $semafaroFirma["rojo"]++;
                
            }
                 
                } }
              
                /** Calculo del Semafaro  **/
                if($SC_COMPANIA_datos_todas){
                
                foreach ($SC_COMPANIA_datos_todas as $key)
                {
             
                 $proceso = $this->mprocesos->LoadProcesosConteoCambioDeEtapasFirmaDatos($key->getIdCompania(),$key->getIdUltimaEtapa());
                 
                 $FechaprimerProceso = $this->chcalendario->calcularDias($proceso[0]->fecha);
                 
                 $proceso_neto = ($FechaprimerProceso/11)*100;
                 
                 if($proceso_neto >= 0 and $proceso_neto < 70 or $proceso_neto == 0 or $proceso_neto < 0)
                     {
                     
                     $semafaroDatos["verde"]++;
                     
                     }elseif ($proceso_neto >= 70 and $proceso_neto <85) {
                
                          $semafaroDatos["amarrillo"]++;
            }else{
                
                 $semafaroDatos["rojo"]++;
                
            }
                 
                } }
                
               $tipoSeguimiento= array(
                   1=>0,
                   2=>0,
                   3=>0,
                   4=>0,
                   7=>0
               ); 
               
               $tipoSeguimientoDAtos= array(
                   1=>0,
                   2=>0,
                   3=>0,
                   4=>0,
                   7=>0
               ); 
               
              
               if($SC_COMPANIA_firma){
               
            foreach ($SC_COMPANIA_firma as $key)
            {
              $procesoSeguimiento = $this->mprocesos->buscarProceso($key->getIdCompania(),10,$fDesde,$fHasta,TRUE);
                
              if($procesoSeguimiento){
              
                  foreach ($procesoSeguimiento as $pro){
                      
                      $posicion =$pro->getIdTipoSeguimiento();
                      
                      $tipoSeguimiento[$posicion]++;
                  }
              
              }
            }}
            

             $SC_COMPANIA_firma_Historico = $this->CompaniaHistorico->loadCompaniaHistoricoByArraykpis($select , $fDesde , $fHasta );

              if($SC_COMPANIA_firma_Historico)
               {
                  foreach ($SC_COMPANIA_firma_Historico as $key)
                      {

                      $procesoSeguimiento = $this->mprocesos->buscarProceso($key->getIdCompania(),10);

                      if($procesoSeguimiento){
                      
                         foreach ($procesoSeguimiento as $pro){
                      
                      $posicion = $pro->getIdTipoSeguimiento();
                      
                      $tipoSeguimiento[$posicion]++;
                             
                 
                  } }
                          
                      
                      
                      }
               }
               
               
               
               /**Datos**/
               
              if($SC_COMPANIA_datos){
               
            foreach ($SC_COMPANIA_datos as $key)
            {
              $procesoSeguimiento = $this->mprocesos->buscarProceso($key->getIdCompania(),11,$fDesde,$fHasta,TRUE);
                
              if($procesoSeguimiento){
              
                  foreach ($procesoSeguimiento as $pro){
                      
                      $posicion =$pro->getIdTipoSeguimiento();
                      
                      $tipoSeguimientoDAtos[$posicion]++;
                  }
              
              }
            }}
              
               
           
                  $SC_COMPANIA_Datos_Historico = $this->CompaniaHistorico->loadCompaniaHistoricoByArraykpis($select , $fDesde , $fHasta );
                 
              if($SC_COMPANIA_Datos_Historico)
               {
                  foreach ($SC_COMPANIA_Datos_Historico as $key)
                      {

                      $procesoSeguimiento = $this->mprocesos->buscarProceso($key->getIdCompania(),11);
                      
                      if($procesoSeguimiento)
                          {
                            
                         foreach ($procesoSeguimiento as $pro){
                      
                      $posicion =$pro->getIdTipoSeguimiento();
                      
                      $tipoSeguimientoDAtos[$posicion]++;
                  }
                          }
                      
                      
                      }
               }
                
                $tabla = array();
                     
                     if($select){
                         
                       $tabla["select"] = $this->usuarios->LoadUsuarioById($select);
                         
                     }  else {
                     
                         $tabla["select"] = $select;
                     }
                     
                     
                     $tabla["fDesde"] = $fDesde;
                     $tabla["Fhasta"] = $fHasta;
                     
             
               $this->load->view('googlechart',array('content_page' => 'seguimientoGraficoControler', 'menutop' => 0,"usuario"=>  $this->usuarioVentas(),"semafaroFirma" => $semafaroFirma, "semafaroDatos" => $semafaroDatos , "tipoSeguimiento" => $tipoSeguimiento, "tipoSeguimientoDAtos" => $tipoSeguimientoDAtos,"tabla" => $tabla));
          }
          
          
          /**
           * 
           * @return array object
           */
          public function usuarioVentas()
          {
              return $this->usuarios->LoadUsuarioByIdDep(2);
          }
          
        
           
           public function reguladorDeEtapas()
           {
                $SC_COMPANIA = $this->mcompania->LoadCompaniasEtapas(); 
                
                foreach ($SC_COMPANIA as $key)
                    {
                    
                   $proceso = $this->mprocesos->buscarUltimoProceso($key->getIdCompania());
                 
                   if($proceso[0]->getIdEtapa() == $key->getIdUltimaEtapa())
                       {
                       
                       }  else {
                       
                           $this->mcompania->inserEtapaActual($key->getIdCompania(),$proceso[0]->getIdEtapa()); 
                       }
                    
                    }
                
           }
}

?>
